Referring to FIG. 1, a diagram is shown illustrating components of a conventional handheld digital camera 10. The handheld camera 10 is often subject to unintended motion during recording. The unintended motion can be measured, for instance, using gyroscopic or inertial sensors 12. In conventional camcorders, rotation around horizontal and vertical axes is measured by two gyroscopic sensors (gyros) 12. The unintended motion can be partially corrected by the camcorder. One conventional approach for correcting camera motion is to use Optical Image Stabilization (OIS). An OIS system uses the motion information from the gyros 12 to move a lens 14 or an image sensor 16 in order to compensate for the camera motion.
Referring to FIG. 2, a diagram is shown illustrating an example of Electronic Image Stabilization (EIS). Another conventional approach for correcting camera motion is to use Electronic Image Stabilization (EIS). A camera using EIS acquires a larger image 20, then selects a smaller window 22 (i.e., a crop window) such that the image in the crop window 22 appears to be stabilized. The smaller crop window 22 can be defined by parameters including a vertical offset, a horizontal offset, a crop width, and a crop height.
The processing of the conventional motion compensation approaches is subject to practical constraints because the processing is done in real-time (i.e., while acquiring the image). In OIS, there are physical limitations in moving the lens 14 or sensor 16 far enough or fast enough to completely correct for the unintended motion. Similarly, the conventional EIS system relies on capturing the larger image 20 from which the stabilized window 22 can be obtained, and therefore is also limited in correction range. Furthermore, it can be difficult to differentiate an unintended hand motion from a deliberate one, such as in panning.
It would be desirable to have a method and/or apparatus for camera motion compensation that allows better decisions to be made and/or more sophisticated processing than is possible in real-time, either during playback or for re-encoding.